package com.day01_Array;

/**
 * @ClassName: Test01
 * @Author: 豆豆在睡觉
 * @Create 2024/1/13-15:34
 * @Version 1.0
 */
public class Test01 {
    public static void main(String[] args) {
        // 1. 数组声明和初始化
        double[] price; // 声明了一个double类型的数组
        // 这里变量初始化和数组元素赋值操作同时进行
        // 静态初始化Å
        price = new double[]{20,32.33,34,455,54.5};
        // 静态初始化的简化格式
        int [] p1 = {1,2,4,5,6};
        for (int i = 0; i < p1.length; i++) {
            System.out.println("静态初始化的简化格式");
            System.out.println(p1[i]);
        }


        // 声明了一个string类型的数组
        // 动态初始化
        String[] foods;
        foods = new String[4]; // foods数组的长度是4
        foods[0] = "蛋炒饭"; // 数组元素赋值

        // 2。 数组调用 ： 通过下标调用
        System.out.println(price[0]);

        // 3. 数组长度： price.length
        System.out.println(price.length);

        // 4. 数组如何遍历数组
        // 4.1 增强for循环（不能拿到下标）； 这个dd 和 s 指的是每个元素。
        for(double dd:price) {
            System.out.println(dd);
        }
        for(String s:foods) {
            System.out.println(s);
        }

        // 4.2 普通for循环
        for (int i=0; i<price.length;i++) {
            System.out.println(price[i]);
        }

        // 5.数组元素的默认初始化值
        // 5.1 整型数组元素默认初始化： 0
        // 5.2 浮点型： 0.0
        // 5.3 字符char型：0
        char[] chart1 = new char[3];
        for(int i = 0; i<chart1.length; i++) {
            System.out.println(chart1[i]);
        }
        // 5.4 boolean 数组元素默认初始化 false
        // 5.5 引用数据 数组元素默认初始化 null

        // 6. 数组的内存解析
        // 将内存划分未5个区域：


        //7 二维数组
        int[][] strarr = new int[][]{{1,2,3},{2,3,4},{4,5,6}};

        // 二维数组遍历
        // 增强for循环
        for(int[] item:strarr) {
            for(int subItem:item) {
                System.out.println(subItem);
            }
        }
        // 普通for循环
        for(int i =0; i < strarr.length; i++) {
            for(int j=0; j < strarr[i].length; j++) {
                System.out.println(strarr[i][j]);
            }
        }
    }
}
